package test;

import java.io.IOException;
import java.io.InputStream;

import org.apache.commons.codec.binary.Base64;


/**
* @author 作者 linweiqiang
* @version 创建时间：2017年11月14日 下午3:39:20
* 类说明
*/
public class Base64TFImage {
	
	/**
	 * 将base64的图片转换成byte
	 * @param imgStr
	 * @return
	 */
	public static byte[] base642Image(String imgStr){
		byte[] imgB = null;
		/*Pattern p = Pattern.compile("^data:.*?/([^;]*)");
		Matcher m = p.matcher(imgStr);
		String suffix = "";
		if(m.find()){
			suffix = m.group(1);
		}*/
		imgStr = imgStr.replaceAll("^(data:[^,]*,)","");
		System.out.println(":" + imgStr);
		try {
			// 解密
			imgB = Base64.decodeBase64(imgStr);
			// 处理数据
			for (int i = 0; i < imgB.length; ++i) {
				if (imgB[i] < 0) {
					imgB[i] += 256 ;
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
		return imgB;
	}
	
	/**
	 * 将图片流转换成base64
	 * .....
	 * @param is
	 * @return
	 */
	public static String image2Base64(InputStream is){
	    byte[] data = null;
	    String type = "";
	    try {
	        data = new byte[is.available()];
	        is.read(data);
	        type = "data:image/"+ ByteTFFile.getImgType(data)+";base64,";
	        is.close();
	    } catch (IOException e) {
	        e.printStackTrace();
	    }
	    return type + new String(Base64.encodeBase64(data));
	}
	
    
}
